package com.ruoyi.merchant.service;

import com.ruoyi.merchant.domain.Product;
import com.ruoyi.merchant.domain.dto.DishDetailUpdateDTO;
import com.ruoyi.merchant.domain.dto.DishSubmitDTO;
import com.ruoyi.merchant.domain.dto.SkuPriceStockUpdateDTO;

import java.util.List;
import java.util.Map;

/**
 * 商品Service接口
 */
public interface IProductService {
    /**
     * 查询商品（包含规格信息）
     */
    Product selectProductByProductId(Long productId);

    /**
     * 查询商品列表
     */
    List<Product> selectProductList(Product product);

    /**
     * 新增商品并提交审核（包含规格）
     */
    int insertProductAndSubmitAudit(DishSubmitDTO dishSubmitDTO);

    /**
     * 修改商品详情并提交审核（会触发重新审核）
     */
    int updateProductDetailAndSubmitAudit(DishDetailUpdateDTO dishDetailUpdateDTO);

    /**
     * 修改SKU价格和库存（不需要审核）
     */
    int updateSkuPriceAndStock(SkuPriceStockUpdateDTO skuPriceStockUpdateDTO);

    /**
     * 批量删除商品
     */
    int deleteProductByProductIds(Long[] productIds);

    /**
     * 删除商品信息
     */
    int deleteProductByProductId(Long productId);

    /**
     * 批量更新商品状态（上下架）
     */
    int updateProductStatus(Long[] productIds, Integer status);

    /**
     * 查询商品统计信息
     */
    Map<String, Object> selectProductStatistics();
}
